package br.com.controlador;

import br.com.modelo.Operador;
import java.io.Serializable;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

@ManagedBean(name = "loginControler")
@ViewScoped
public class LoginControler implements Serializable {

    private String usuario;
    private String senha;

    /**
     * @return the usuario
     */
    public String getUsuario() {
        return usuario;
    }

    /**
     * @param usuario the usuario to set
     */
    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    /**
     * @return the senha
     */
    public String getSenha() {
        return senha;
    }

    /**
     * @param senha the senha to set
     */
    public void setSenha(String senha) {
        this.senha = senha;
    }

    public String realizaLogin() {
        Operador usu = Operador.retornaUsuarioPorNomeSenha(getUsuario(), getSenha());
        if (usu != null) {
            //adiciona na sessao
            HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
//            Object obj = session.getAttribute("usuarioLogado");
//            if (obj != null) {//se possuir dado na sessao destruo para criar uma sessao nova
//                session.invalidate();
//            }
            session.setAttribute("usuarioLogado", usu);
            return "home";
        } else {
            //se nao existir retorna
            String mensagem = "Usuario ou senha invalidos!!";
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, mensagem, "mensagem"));
            return "login";
        }
    }

    public void destroy() {
        HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
        session.invalidate();
//        HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
//        try {
//            response.sendRedirect("login.jsf");
//        } catch (Exception e) {
//        }
    }
}